package io.gitee.xyuesheng.day06.exam;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Weibo implements WeiboApi {
    //保存系统里面所有的用户
//    List<User> user=new ArrayList<>();
    Map<Integer, User> map = new HashMap<>();

    @Override
    public void create(Integer userId, Integer postId) {
        //程序里面已经有用户信息
        User user = null;
        if (map.containsKey(userId)) {
            user = map.get(userId);
        } else {
            user = new User(userId);
        }
        Message message = new Message(postId);
        //把message添加到用户的消息列表（头部）
        user.getMessages().add(0, message);
        //User中添加了public List<Message> getMessages()

    }

    @Override
    public List<Integer> getTimeline(Integer userId) {

        return null;
    }

    @Override
    public void follow(Integer fansId, Integer followeeId) {
        //如果用户不存在，就行创建一个新的用户，放到全局的map集合
        User fans = map.get(fansId);
        if (fans == null) {
            fans = new User(fansId);
            map.put(fansId, fans);
        }

        User followee = map.get(followeeId);
        if (followee == null) {
            followee = new User(followeeId);
            map.put(followeeId, followee);
        }

        //把followee加入到fans的关注列表
        fans.getFollowees().add(followee);

    }

    @Override
    public void unfollow(Integer fansId, Integer followeeId) {
        User fans = map.get(fansId);
        User followee = map.get(followeeId);

        //粉丝或者被关注者不存在，直接返回
        if (fans == null || followee == null) {
            return;
        }

        fans.getFollowees().remove(followee);

    }


}
